PowerShell peut interagir avec Active Directory de façon assez simple - le fonctionnement est très similaire à VBScript.
La première chose à faire est de définir une variable qui pointera vers une unité organisationnelle (UO) de notre Active Directory (AD). C'est par cette variable qu'on accèdera aux objets qu'elle contient. On pourra alors en créer des nouveaux, en détruire ou en modifier à notre guise:
$uo=[ADSI]"LDAP://localhost:389/CN=Users,DC=AECreseaux,DC=com"
Pour créer un usager, on doit partir de l'UO qui le contiendra. On créera d'abord une variable qui représentera l'usager:
$usager = $uo.Create("user","cn=NouvelUsager")
La méthode Create permet de créer quelque chose dans l'UO. On définit le type comme premier paramètre (ici, on a utilisé "user", mais on aurait pu utiliser "organizationalUnit" ou "group"). Le deuxième paramètre contiendra le nom de l'usager. Ici, le DN est plus court puisqu'on sait qu'il sera créé dans l'UO - uniquement besoin de son propre nom!
Une fois l'objet usager créé (notez qu'il n'est créé que localement, pas dans AD encore), on peut modifier ses attributs avec la méthode put:
$usager.put("sAMAccountName", "nouvelu") $usager.put("givenName", "Nouvel") $usager.put("sn", "Usager") $usager.put("telephoneNumber", "5145551212") $usager.put("profilePath", "\\serveur\profils\nouvelu")
Notez que:
Une fois que notre objet usager est créé, on doit l'envoyer dans AD en faisant simplement:
$usager.SetInfo()
Pour que ça fonctionne, il faut exécuter PowerShell en tant qu'un administrateur du domaine (et être logué sur le domaine, bien entendu).
Par défaut, les comptes usagers sont créés désactivés et sans mot de passe. Pour rémédier à la situation, on doit faire (après le SetInfo qui a créé l'objet proprement dit dans AD):
$usager.psbase.Invoke("SetPassword","1212patate") $usager.psbase.InvokeSet('Accountdisabled',$false) $usager.psbase.CommitChanges()
On peut également modifier un usager en faisant pointer une variable sur lui (via son DN) et en faisant des put pour écraser le contenu précédent de certains champs. N'oubliez pas le SetInfo à la fin!
Créez un script qui lit un fichier texte formaté ainsi:
nomLogin prénom nomFamille telephone cheminProfil motPasse
Chaque ligne correspond à un usager à créer. Votre script doit lire le fichier ligne par ligne et créer les comptes dans AD. Inspirez-vous des exemples sur cette page et sur le programme de bottin - ce script sera simplement un croisement entre les deux.